/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.servicios;

import com.jomijushi.fid.dao.RolTrabajadorHasFidTrabajadorImplementsDAO;
import com.jomijushi.fid.dao.RolTrabajadorHasFidTrabajadorInterfazDAO;
import com.jomijushi.fid.dao.TrabajadorImplementsDAO;
import com.jomijushi.fid.dao.TrabajadorInterfazDAO;
import com.jomijushi.fid.dominio.FidRolTrabajador;
import com.jomijushi.fid.dominio.FidRolTrabajadorHasFidTrabajador;
import com.jomijushi.fid.dominio.FidTrabajador;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;


/** 
 *
 * @author Jorge Valverde Rebaza
 */
public class TrabajadorImplementsService extends JpaService<Integer, FidTrabajador> implements TrabajadorInterfazService {
    
    private TrabajadorInterfazDAO trabajadorDAO = new TrabajadorImplementsDAO();
    private RolTrabajadorHasFidTrabajadorInterfazDAO rolesDAO = new RolTrabajadorHasFidTrabajadorImplementsDAO();
    private EntityManagerFactory emf;

    @PersistenceContext
    public void setEntityManagerFactory(EntityManagerFactory emf) {
        this.emf = emf;
    }
    
    

    public List<FidTrabajador> listarTrabajadores(String valorKey, String buscar, boolean b, int c, int d, String orden)
    {
        EntityManager em = emf.createEntityManager();
        try {
            trabajadorDAO.setEntityManager(em);
            List<FidTrabajador> lst = trabajadorDAO.listarTrabajador(valorKey, buscar, b, c, d, orden);
            return lst;
        } finally {
            em.close();
        }
    }
    
    /*
    public static void main(String[] arg)
    {
        // Datos conexion
        EntityManagerFactory emf1= Persistence.createEntityManagerFactory("fid.netPU");
        EntityManager em1=emf1.createEntityManager();

        List<FidRolTrabajador> ft;
        String jpql="SELECT r " +
                "FROM FidRolTrabajador r " +
                "JOIN r.fidRolTrabajadorHasFidTrabajadorList h " +
                "JOIN h.fidTrabajadorFidPersonaEmpresaId t " +
                "JOIN t.fidPersonaEmpresa p " +
                "WHERE p.id = :id ";
        try{
            ft = em1.createQuery(jpql)
                    .setParameter("id",12)
                    .getResultList();
            for(int i=0; i<ft.size(); i++)
            {
                System.out.println("Rol Encontrado: "+ft.get(i).getNombre());
            }        
        }finally {
            em1.close();
        }
    }
     */
    
} 